package com.newjiabo.ski.service;

import java.util.List;

import com.newjiabo.ski.domain.SkiAfterSale;
import com.newjiabo.ski.domain.vo.AfterSaleInfoVo;

/**
 * 售后Service接口
 *
 * @author CaoMengHui
 * @date 2023-09-23
 */
public interface ISkiAfterSaleService {
    /**
     * 查询售后
     *
     * @param id 售后主键
     * @return 售后
     */
    SkiAfterSale selectSkiAfterSaleById(String id);

    /**
     * 查询售后列表
     *
     * @param skiAfterSale 售后
     * @return 售后集合
     */
    List<SkiAfterSale> selectSkiAfterSaleList(SkiAfterSale skiAfterSale);

    /**
     * 新增售后
     *
     * @param skiAfterSale 售后
     * @return 结果
     */
    int insertSkiAfterSale(SkiAfterSale skiAfterSale);

    /**
     * 修改售后
     *
     * @param skiAfterSale 售后
     * @return 结果
     */
    int updateSkiAfterSale(SkiAfterSale skiAfterSale);

    /**
     * 批量删除售后
     *
     * @param ids 需要删除的售后主键集合
     * @return 结果
     */
    int deleteSkiAfterSaleByIds(String[] ids);

    /**
     * 删除售后信息
     *
     * @param id 售后主键
     * @return 结果
     */
    int deleteSkiAfterSaleById(String id);

    /**
     * 处理售后订单信息
     *
     * @param afterSaleId
     * @param actualRefundPrice
     * @param auditRemark
     * @return
     * @author CaoMengHui.
     * @date 2023/9/23 17:47
     */
    int processAfter(String afterSaleId, Double actualRefundPrice, String auditRemark, String serviceStatus);

    /**
     * 通过单号查询
     *
     * @param refundId
     * @param outRefundNoResult
     * @param outTradeNo
     * @return
     * @author CaoMengHui.
     * @date 2023/9/27 8:57
     */
    SkiAfterSale selectByOrder(String refundId, String outRefundNoResult, String outTradeNo);


    /**
     * 获取售后订单详情
     *
     * @param id
     * @return
     * @author CaoMengHui.
     * @date 2023/10/8 16:31
     */
    AfterSaleInfoVo getInfo(String id);
}
